@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.
- package/components/AppLayout/AppLayout.d.ts +9 -7
- package/components/AppLayout/AppLayout.js +28 -22
- package/components/AppLayout/AppLayout.js.map +1 -1
- package/components/AppLayout/AppLayout.module.css.js +4 -0
- package/components/AppLayout/AppLayout.module.css.js.map +1 -0
- package/components/AppLayout/ContentFooter.d.ts +3 -4
- package/components/AppLayout/ContentFooter.js +10 -15
- package/components/AppLayout/ContentFooter.js.map +1 -1
- package/components/AppLayout/SideNavbar.d.ts +8 -8
- package/components/AppLayout/SideNavbar.js +41 -17
- package/components/AppLayout/SideNavbar.js.map +1 -1
- package/components/AppLayout/SideNavbarGroup.d.ts +19 -0
- package/components/AppLayout/SideNavbarGroup.js +16 -0
- package/components/AppLayout/SideNavbarGroup.js.map +1 -0
- package/components/AppLayout/SideNavbarItem.d.ts +8 -3
- package/components/AppLayout/SideNavbarItem.js +71 -28
- package/components/AppLayout/SideNavbarItem.js.map +1 -1
- package/components/AppLayout/TopNavbar.d.ts +7 -3
- package/components/AppLayout/TopNavbar.js +37 -18
- package/components/AppLayout/TopNavbar.js.map +1 -1
- package/components/AppLayout/app-layout.utils.d.ts +14 -0
- package/components/AppLayout/app-layout.utils.js +6 -0
- package/components/AppLayout/app-layout.utils.js.map +1 -0
- package/components/AppLayout/hooks/use-active-nav-label.d.ts +2 -0
- package/components/AppLayout/hooks/use-active-nav-label.js +29 -0
- package/components/AppLayout/hooks/use-active-nav-label.js.map +1 -0
- package/components/AppLayout/hooks/use-layout-state.js +11 -13
- package/components/AppLayout/hooks/use-layout-state.js.map +1 -1
- package/components/AppLayout/hooks/use-side-navbar-item.d.ts +4 -4
- package/components/AppLayout/hooks/use-side-navbar-item.js +21 -32
- package/components/AppLayout/hooks/use-side-navbar-item.js.map +1 -1
- package/components/AppLayout/index.d.ts +1 -1
- package/components/AppLayout/layout.types.d.ts +9 -9
- package/components/Logo/Alphabets.d.ts +2 -7
- package/components/Logo/Alphabets.js +119 -31
- package/components/Logo/Alphabets.js.map +1 -1
- package/components/Logo/BrandMark.js +38 -16
- package/components/Logo/BrandMark.js.map +1 -1
- package/components/Logo/Logo.js +17 -13
- package/components/Logo/Logo.js.map +1 -1
- package/components/Logo/Logo.module.css.js +4 -0
- package/components/Logo/Logo.module.css.js.map +1 -0
- package/components/Logo/hooks/use-logo.js +13 -15
- package/components/Logo/hooks/use-logo.js.map +1 -1
- package/hooks/useSearchParams.js +16 -19
- package/hooks/useSearchParams.js.map +1 -1
- package/index.d.ts +6 -4
- package/index.js +10 -5
- package/index.js.map +1 -1
- package/lib/api-error.js +16 -20
- package/lib/api-error.js.map +1 -1
- package/lib/api-request.d.ts +2 -2
- package/lib/api-request.js +105 -117
- package/lib/api-request.js.map +1 -1
- package/lib/generate-api.js +193 -230
- package/lib/generate-api.js.map +1 -1
- package/lib/utils.js +5 -21
- package/lib/utils.js.map +1 -1
- package/package.json +12 -5
- package/styles/AppLayout.module.css +82 -0
- package/{components/Logo → styles}/Logo.module.css +6 -0
- package/styles.css +2 -0
- package/styles.css.map +1 -0
- package/styles.layer.css +4 -0
- package/theme.d.ts +6 -6
- package/theme.js +111 -114
- package/theme.js.map +1 -1
- package/types.d.ts +1 -0
- package/components/AppLayout/AppLayout.module.css +0 -47
- package/components/AppLayout/index.js +0 -3
- package/components/AppLayout/index.js.map +0 -1
- package/components/AppLayout/layout.types.js +0 -2
- package/components/AppLayout/layout.types.js.map +0 -1
- package/components/Logo/index.js +0 -3
- package/components/Logo/index.js.map +0 -1
- package/hooks/index.js +0 -2
- package/hooks/index.js.map +0 -1
- package/lib/index.js +0 -5
- package/lib/index.js.map +0 -1
- package/types.js +0 -5
- package/types.js.map +0 -1
|
@@ -1,19 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useComputedColorScheme, useMantineColorScheme, Group, Burger, Box, Text, ActionIcon, Indicator, Menu, Avatar } from '@mantine/core';
|
|
4
|
+
import { Sun, Moon, Bell } from 'lucide-react';
|
|
5
|
+
import { getInitials } from '../../lib/utils.js';
|
|
6
|
+
import { useActiveNavLabel } from './hooks/use-active-nav-label.js';
|
|
7
|
+
|
|
8
|
+
function TopNavbar({ navItems, headerContent, user, notifications, showThemeToggle = true, mobileOpened, onToggleMobile }) {
|
|
9
|
+
const theme = useComputedColorScheme();
|
|
10
|
+
const { toggleColorScheme } = useMantineColorScheme();
|
|
11
|
+
const activeLabel = useActiveNavLabel(navItems);
|
|
12
|
+
return /* @__PURE__ */ jsxs(Group, { h: "100%", px: "md", justify: "space-between", wrap: "nowrap", children: [
|
|
13
|
+
/* @__PURE__ */ jsxs(Group, { gap: "sm", wrap: "nowrap", children: [
|
|
14
|
+
/* @__PURE__ */ jsx(Burger, { opened: mobileOpened, onClick: onToggleMobile, hiddenFrom: "sm", size: "sm", "aria-label": "Toggle navigation" }),
|
|
15
|
+
/* @__PURE__ */ jsx(Box, { visibleFrom: "sm", children: headerContent ?? (activeLabel && /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", c: "dimmed", children: activeLabel })) })
|
|
16
|
+
] }),
|
|
17
|
+
/* @__PURE__ */ jsxs(Group, { gap: "sm", wrap: "nowrap", children: [
|
|
18
|
+
showThemeToggle && /* @__PURE__ */ jsx(ActionIcon, { onClick: toggleColorScheme, size: "lg", "aria-label": "Toggle color scheme", children: theme === "dark" ? /* @__PURE__ */ jsx(Sun, { size: 18 }) : /* @__PURE__ */ jsx(Moon, { size: 18 }) }),
|
|
19
|
+
notifications && /* @__PURE__ */ jsx(Indicator, { label: notifications.count, size: 16, disabled: notifications.count === 0, offset: 4, children: /* @__PURE__ */ jsx(ActionIcon, { onClick: notifications.onClick, size: "lg", "aria-label": "Notifications", children: /* @__PURE__ */ jsx(Bell, { size: 18 }) }) }),
|
|
20
|
+
user && /* @__PURE__ */ jsxs(Menu, { position: "bottom-end", offset: 8, width: 200, children: [
|
|
21
|
+
/* @__PURE__ */ jsx(Menu.Target, { children: /* @__PURE__ */ jsx(ActionIcon, { variant: "transparent", size: "lg", radius: "xl", "aria-label": "User menu", ml: "md", children: /* @__PURE__ */ jsx(Avatar, { src: user.avatarUrl, size: "sm", radius: "xl", color: "initials", children: !user.avatarUrl && getInitials(user.name) }) }) }),
|
|
22
|
+
/* @__PURE__ */ jsxs(Menu.Dropdown, { children: [
|
|
23
|
+
/* @__PURE__ */ jsxs(Menu.Label, { children: [
|
|
24
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: user.name }),
|
|
25
|
+
user.email && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: user.email })
|
|
26
|
+
] }),
|
|
27
|
+
user.actions?.map((action, index) => /* @__PURE__ */ jsxs("div", { children: [
|
|
28
|
+
(action.divider || index === 0) && /* @__PURE__ */ jsx(Menu.Divider, {}),
|
|
29
|
+
/* @__PURE__ */ jsx(Menu.Item, { leftSection: action.icon && /* @__PURE__ */ jsx(action.icon, { size: 14 }), color: action.color, onClick: action.onClick, children: action.label })
|
|
30
|
+
] }, action.label))
|
|
31
|
+
] })
|
|
32
|
+
] })
|
|
33
|
+
] })
|
|
34
|
+
] });
|
|
18
35
|
}
|
|
19
|
-
|
|
36
|
+
|
|
37
|
+
export { TopNavbar };
|
|
38
|
+
//# sourceMappingURL=TopNavbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopNavbar.js","sourceRoot":"","sources":["../../../src/components/AppLayout/TopNavbar.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TopNavbar.js","sources":["../../../src/components/AppLayout/TopNavbar.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { ActionIcon, Avatar, Box, Burger, Group, Indicator, Menu, Text, useComputedColorScheme, useMantineColorScheme } from '@mantine/core';\nimport { Bell, Moon, Sun } from 'lucide-react';\nimport { type ReactNode } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { getInitials } from '@/lib';\nimport { type VoidFn } from '@/types';\n\nimport { useActiveNavLabel } from './hooks/use-active-nav-label';\nimport { type NavGroup, type NavItem, type NotificationsConfig, type UserInfo } from './layout.types';\n\n/**\n * Defining types\n */\n\ninterface TopNavbarProps {\n navItems: (NavItem | NavGroup)[];\n headerContent?: ReactNode;\n user?: UserInfo;\n notifications?: NotificationsConfig;\n showThemeToggle?: boolean;\n mobileOpened: boolean;\n onToggleMobile: VoidFn;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function TopNavbar({ navItems, headerContent, user, notifications, showThemeToggle = true, mobileOpened, onToggleMobile }: TopNavbarProps) {\n const theme = useComputedColorScheme();\n const { toggleColorScheme } = useMantineColorScheme();\n const activeLabel = useActiveNavLabel(navItems);\n\n return (\n <Group h='100%' px='md' justify='space-between' wrap='nowrap'>\n {/* Left section */}\n <Group gap='sm' wrap='nowrap'>\n <Burger opened={mobileOpened} onClick={onToggleMobile} hiddenFrom='sm' size='sm' aria-label='Toggle navigation' />\n <Box visibleFrom='sm'>\n {headerContent ??\n (activeLabel && (\n <Text fw={500} size='sm' c='dimmed'>\n {activeLabel}\n </Text>\n ))}\n </Box>\n </Group>\n\n {/* Right section */}\n <Group gap='sm' wrap='nowrap'>\n {showThemeToggle && (\n <ActionIcon onClick={toggleColorScheme} size='lg' aria-label='Toggle color scheme'>\n {theme === 'dark' ? <Sun size={18} /> : <Moon size={18} />}\n </ActionIcon>\n )}\n\n {notifications && (\n <Indicator label={notifications.count} size={16} disabled={notifications.count === 0} offset={4}>\n <ActionIcon onClick={notifications.onClick} size='lg' aria-label='Notifications'>\n <Bell size={18} />\n </ActionIcon>\n </Indicator>\n )}\n\n {user && (\n <Menu position='bottom-end' offset={8} width={200}>\n <Menu.Target>\n <ActionIcon variant='transparent' size='lg' radius='xl' aria-label='User menu' ml='md'>\n <Avatar src={user.avatarUrl} size='sm' radius='xl' color='initials'>\n {!user.avatarUrl && getInitials(user.name)}\n </Avatar>\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Label>\n <Text size='sm' fw={500}>\n {user.name}\n </Text>\n {user.email && (\n <Text size='xs' c='dimmed'>\n {user.email}\n </Text>\n )}\n </Menu.Label>\n {user.actions?.map((action, index) => (\n <div key={action.label}>\n {(action.divider || index === 0) && <Menu.Divider />}\n <Menu.Item leftSection={action.icon && <action.icon size={14} />} color={action.color} onClick={action.onClick}>\n {action.label}\n </Menu.Item>\n </div>\n ))}\n </Menu.Dropdown>\n </Menu>\n )}\n </Group>\n </Group>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing npm packages
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Importing user defined packages
|
|
6
|
+
*/
|
|
7
|
+
import { type NavGroup, type NavItem } from './layout.types';
|
|
8
|
+
/**
|
|
9
|
+
* Defining types
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Declaring the constants
|
|
13
|
+
*/
|
|
14
|
+
export declare function isNavGroup(item: NavItem | NavGroup): item is NavGroup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-layout.utils.js","sources":["../../../src/components/AppLayout/app-layout.utils.ts"],"sourcesContent":["/**\n * Importing npm packages\n */\n\n/**\n * Importing user defined packages\n */\nimport { type NavGroup, type NavItem } from './layout.types';\n\n/**\n * Defining types\n */\n\n/**\n * Declaring the constants\n */\n\nexport function isNavGroup(item: NavItem | NavGroup): item is NavGroup {\n return 'group' in item && 'items' in item;\n}\n"],"names":[],"mappings":"AAiBO,SAAS,WAAW,IAAA,EAA4C;AACrE,EAAA,OAAO,OAAA,IAAW,QAAQ,OAAA,IAAW,IAAA;AACvC;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useLocation } from '@tanstack/react-router';
|
|
3
|
+
import { isNavGroup } from '../app-layout.utils.js';
|
|
4
|
+
|
|
5
|
+
function isRouteActive(path, current, exact) {
|
|
6
|
+
return exact ? current === path : current === path || current.startsWith(`${path}/`);
|
|
7
|
+
}
|
|
8
|
+
function findActiveLabel(items, current) {
|
|
9
|
+
for (const item of items) {
|
|
10
|
+
if (item.children?.length) {
|
|
11
|
+
const childLabel = findActiveLabel(item.children, current);
|
|
12
|
+
if (childLabel) return childLabel;
|
|
13
|
+
}
|
|
14
|
+
if (item.path && isRouteActive(item.path, current, item.exactMatch ?? false)) {
|
|
15
|
+
return item.label;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
function flattenNavItems(navItems) {
|
|
21
|
+
return navItems.flatMap((item) => isNavGroup(item) ? item.items : [item]);
|
|
22
|
+
}
|
|
23
|
+
function useActiveNavLabel(navItems) {
|
|
24
|
+
const { pathname } = useLocation();
|
|
25
|
+
return findActiveLabel(flattenNavItems(navItems), pathname);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { useActiveNavLabel };
|
|
29
|
+
//# sourceMappingURL=use-active-nav-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-active-nav-label.js","sources":["../../../../src/components/AppLayout/hooks/use-active-nav-label.ts"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { useLocation } from '@tanstack/react-router';\n\n/**\n * Importing user defined packages\n */\nimport { isNavGroup } from '../app-layout.utils';\nimport { type NavGroup, type NavItem } from '../layout.types';\n\n/**\n * Declaring the constants\n */\n\nfunction isRouteActive(path: string, current: string, exact: boolean): boolean {\n return exact ? current === path : current === path || current.startsWith(`${path}/`);\n}\n\nfunction findActiveLabel(items: NavItem[], current: string): string | null {\n for (const item of items) {\n if (item.children?.length) {\n const childLabel = findActiveLabel(item.children, current);\n if (childLabel) return childLabel;\n }\n if (item.path && isRouteActive(item.path, current, item.exactMatch ?? false)) {\n return item.label;\n }\n }\n return null;\n}\n\nfunction flattenNavItems(navItems: (NavItem | NavGroup)[]): NavItem[] {\n return navItems.flatMap(item => (isNavGroup(item) ? item.items : [item]));\n}\n\nexport function useActiveNavLabel(navItems: (NavItem | NavGroup)[]): string | null {\n const { pathname } = useLocation();\n return findActiveLabel(flattenNavItems(navItems), pathname);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
* Importing npm packages
|
|
3
|
-
*/
|
|
1
|
+
'use client';
|
|
4
2
|
import { useDisclosure } from '@mantine/hooks';
|
|
5
3
|
import { useState } from 'react';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const toggleCollapsed = () => setCollapsed(prev => !prev);
|
|
14
|
-
return { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile };
|
|
4
|
+
|
|
5
|
+
function useLayoutState(options = {}) {
|
|
6
|
+
const { defaultCollapsed = false } = options;
|
|
7
|
+
const [collapsed, setCollapsed] = useState(defaultCollapsed);
|
|
8
|
+
const [mobileOpened, { toggle: toggleMobile, close: closeMobile }] = useDisclosure(false);
|
|
9
|
+
const toggleCollapsed = () => setCollapsed((prev) => !prev);
|
|
10
|
+
return { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile };
|
|
15
11
|
}
|
|
16
|
-
|
|
12
|
+
|
|
13
|
+
export { useLayoutState };
|
|
14
|
+
//# sourceMappingURL=use-layout-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-layout-state.js","
|
|
1
|
+
{"version":3,"file":"use-layout-state.js","sources":["../../../../src/components/AppLayout/hooks/use-layout-state.ts"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { useDisclosure } from '@mantine/hooks';\nimport { useState } from 'react';\n\n/**\n * Importing user defined packages\n */\n\n/**\n * Defining types\n */\n\ninterface UseLayoutStateOptions {\n defaultCollapsed?: boolean;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function useLayoutState(options: UseLayoutStateOptions = {}) {\n const { defaultCollapsed = false } = options;\n\n const [collapsed, setCollapsed] = useState(defaultCollapsed);\n const [mobileOpened, { toggle: toggleMobile, close: closeMobile }] = useDisclosure(false);\n\n const toggleCollapsed = () => setCollapsed(prev => !prev);\n\n return { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile };\n}\n"],"names":[],"mappings":";;;;AAsBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,EAAC,CAAA,CAAG,CAAA;AAClE,CAAA,CAAA,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAErC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA;AAC3D,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,GAAO,WAAA,CAAA,CAAa,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,KAAK,CAAA,CAAA;AAExF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAExD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAC/E,CAAA;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Importing user defined packages
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
5
|
-
|
|
4
|
+
import { type VoidFn } from '../../../types';
|
|
5
|
+
import { type NavItem } from '../layout.types';
|
|
6
|
+
export declare function useSideNavbarItem(item: NavItem, onNavigate?: VoidFn): {
|
|
6
7
|
isActive: boolean;
|
|
7
8
|
hasChildren: boolean | undefined;
|
|
8
9
|
hasActiveChild: boolean;
|
|
9
|
-
|
|
10
|
-
navigate: import("@tanstack/router-core").UseNavigateResult<string>;
|
|
10
|
+
onClick: (e: React.MouseEvent) => void;
|
|
11
11
|
};
|
|
@@ -1,37 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { useLocation, useNavigate } from '@tanstack/react-router';
|
|
5
|
-
/**
|
|
6
|
-
* Defining types
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Declaring the constants
|
|
10
|
-
*/
|
|
1
|
+
'use client';
|
|
2
|
+
import { useLocation } from '@tanstack/react-router';
|
|
3
|
+
|
|
11
4
|
function isRouteActive(itemPath, currentPath, exactMatch) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return currentPath === itemPath || currentPath.startsWith(`${itemPath}/`);
|
|
5
|
+
if (exactMatch) return currentPath === itemPath;
|
|
6
|
+
return currentPath === itemPath || currentPath.startsWith(`${itemPath}/`);
|
|
15
7
|
}
|
|
16
8
|
function isItemOrChildActive(item, currentPath) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return item.children?.some(child => isItemOrChildActive(child, currentPath)) ?? false;
|
|
9
|
+
if (item.path && isRouteActive(item.path, currentPath, item.exactMatch ?? false)) return true;
|
|
10
|
+
return item.children?.some((child) => isItemOrChildActive(child, currentPath)) ?? false;
|
|
20
11
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (!hasChildren)
|
|
33
|
-
onNavigate?.();
|
|
34
|
-
};
|
|
35
|
-
return { isActive, hasChildren, hasActiveChild, handleClick, navigate };
|
|
12
|
+
function useSideNavbarItem(item, onNavigate) {
|
|
13
|
+
const location = useLocation();
|
|
14
|
+
const currentPath = location.pathname;
|
|
15
|
+
const isActive = item.path ? isRouteActive(item.path, currentPath, item.exactMatch ?? false) : false;
|
|
16
|
+
const hasChildren = item.children && item.children.length > 0;
|
|
17
|
+
const hasActiveChild = hasChildren ? isItemOrChildActive(item, currentPath) : false;
|
|
18
|
+
const onClick = (e) => {
|
|
19
|
+
item.onClick?.(e);
|
|
20
|
+
if (item.path) onNavigate?.();
|
|
21
|
+
};
|
|
22
|
+
return { isActive, hasChildren, hasActiveChild, onClick };
|
|
36
23
|
}
|
|
37
|
-
|
|
24
|
+
|
|
25
|
+
export { useSideNavbarItem };
|
|
26
|
+
//# sourceMappingURL=use-side-navbar-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-side-navbar-item.js","
|
|
1
|
+
{"version":3,"file":"use-side-navbar-item.js","sources":["../../../../src/components/AppLayout/hooks/use-side-navbar-item.ts"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { useLocation } from '@tanstack/react-router';\n\n/**\n * Importing user defined packages\n */\nimport { type VoidFn } from '@/types';\n\nimport { type NavItem } from '../layout.types';\n\n/**\n * Defining types\n */\n\n/**\n * Declaring the constants\n */\n\nfunction isRouteActive(itemPath: string, currentPath: string, exactMatch: boolean): boolean {\n if (exactMatch) return currentPath === itemPath;\n return currentPath === itemPath || currentPath.startsWith(`${itemPath}/`);\n}\n\nfunction isItemOrChildActive(item: NavItem, currentPath: string): boolean {\n if (item.path && isRouteActive(item.path, currentPath, item.exactMatch ?? false)) return true;\n return item.children?.some(child => isItemOrChildActive(child, currentPath)) ?? false;\n}\n\nexport function useSideNavbarItem(item: NavItem, onNavigate?: VoidFn) {\n const location = useLocation();\n const currentPath = location.pathname;\n\n const isActive = item.path ? isRouteActive(item.path, currentPath, item.exactMatch ?? false) : false;\n const hasChildren = item.children && item.children.length > 0;\n const hasActiveChild = hasChildren ? isItemOrChildActive(item, currentPath) : false;\n const onClick = (e: React.MouseEvent) => {\n item.onClick?.(e);\n if (item.path) onNavigate?.();\n };\n\n return { isActive, hasChildren, hasActiveChild, onClick };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './AppLayout.js';
|
|
2
|
-
export * from './layout.types
|
|
2
|
+
export * from './layout.types';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Importing npm packages
|
|
3
3
|
*/
|
|
4
4
|
import { type LucideIcon } from 'lucide-react';
|
|
5
|
-
import { type
|
|
5
|
+
import { type MouseEventHandler } from 'react';
|
|
6
6
|
/**
|
|
7
7
|
* Importing user defined packages
|
|
8
8
|
*/
|
|
@@ -19,7 +19,7 @@ export interface NavItem {
|
|
|
19
19
|
/** Route path — used for navigation and active-state matching */
|
|
20
20
|
path?: string;
|
|
21
21
|
/** Click handler — called in addition to navigation when `path` is set */
|
|
22
|
-
onClick?:
|
|
22
|
+
onClick?: MouseEventHandler;
|
|
23
23
|
/** Nested children — renders accordion (expanded) or flyout (collapsed) */
|
|
24
24
|
children?: NavItem[];
|
|
25
25
|
/** If true, active match uses exact equality; otherwise prefix match. @default false */
|
|
@@ -30,7 +30,7 @@ export interface NavItem {
|
|
|
30
30
|
export interface UserMenuAction {
|
|
31
31
|
label: string;
|
|
32
32
|
icon?: LucideIcon;
|
|
33
|
-
onClick:
|
|
33
|
+
onClick: MouseEventHandler<HTMLButtonElement>;
|
|
34
34
|
color?: string;
|
|
35
35
|
/** If true, a divider is rendered before this action */
|
|
36
36
|
divider?: boolean;
|
|
@@ -49,11 +49,11 @@ export interface NotificationsConfig {
|
|
|
49
49
|
/** Unread count displayed as badge; 0 hides badge */
|
|
50
50
|
count: number;
|
|
51
51
|
/** Called when the bell icon is clicked */
|
|
52
|
-
onClick:
|
|
52
|
+
onClick: MouseEventHandler<HTMLButtonElement>;
|
|
53
53
|
}
|
|
54
|
-
export interface
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
|
|
54
|
+
export interface NavGroup {
|
|
55
|
+
/** Section header label displayed above the grouped items */
|
|
56
|
+
group: string;
|
|
57
|
+
/** Nav items belonging to this group */
|
|
58
|
+
items: NavItem[];
|
|
59
59
|
}
|
|
@@ -8,13 +8,9 @@ import { type ReactElement } from 'react';
|
|
|
8
8
|
/**
|
|
9
9
|
* Defining types
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[AlphabetBrand]: undefined;
|
|
11
|
+
export type Alphabet = ((props: React.SVGProps<SVGSVGElement>) => ReactElement<SVGSVGElement>) & {
|
|
12
|
+
char: string;
|
|
14
13
|
};
|
|
15
|
-
/**
|
|
16
|
-
* Declaring the constants
|
|
17
|
-
*/
|
|
18
14
|
export declare const A: Alphabet;
|
|
19
15
|
export declare const B: Alphabet;
|
|
20
16
|
export declare const C: Alphabet;
|
|
@@ -41,4 +37,3 @@ export declare const W: Alphabet;
|
|
|
41
37
|
export declare const X: Alphabet;
|
|
42
38
|
export declare const Y: Alphabet;
|
|
43
39
|
export declare const Z: Alphabet;
|
|
44
|
-
export {};
|
|
@@ -1,31 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function createAlphabet(char, { viewBox, d }) {
|
|
5
|
+
return Object.assign(
|
|
6
|
+
(props) => /* @__PURE__ */ jsxs("svg", { ...props, viewBox, children: [
|
|
7
|
+
/* @__PURE__ */ jsx("title", { children: char }),
|
|
8
|
+
/* @__PURE__ */ jsx("path", { d })
|
|
9
|
+
] }),
|
|
10
|
+
{ char }
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
const A = createAlphabet("A", {
|
|
14
|
+
viewBox: "2 -70 58 70",
|
|
15
|
+
d: "M2 0L27-70L35-70L60 0L52 0L46-19L16-19L10 0L2 0ZM19-26L43-26L31-61L31-61L19-26Z"
|
|
16
|
+
});
|
|
17
|
+
const B = createAlphabet("B", {
|
|
18
|
+
viewBox: "8 -70 51.6 70",
|
|
19
|
+
d: "M8 0L8-70L47-70L57-61L57-41L52-37L60-29L60-10L50 0L8 0ZM15-38L44-38L49-43L49-59L44-63L15-63L15-38ZM15-7L46-7L52-12L52-26L46-32L15-32L15-7Z"
|
|
20
|
+
});
|
|
21
|
+
const C = createAlphabet("C", {
|
|
22
|
+
viewBox: "7 -70 51.6 70",
|
|
23
|
+
d: "M18 0L7-11L7-59L18-70L48-70L59-59L59-53L51-53L51-57L45-63L21-63L15-57L15-14L21-7L45-7L51-13L51-17L59-17L59-11L48 0L18 0Z"
|
|
24
|
+
});
|
|
25
|
+
const D = createAlphabet("D", {
|
|
26
|
+
viewBox: "8 -70 51.400000000000006 70",
|
|
27
|
+
d: "M8 0L8-70L48-70L59-59L59-11L48 0L8 0ZM16-7L45-7L52-14L52-57L45-63L16-63L16-7Z"
|
|
28
|
+
});
|
|
29
|
+
const E = createAlphabet("E", {
|
|
30
|
+
viewBox: "8 -70 45.2 70",
|
|
31
|
+
d: "M8 0L8-70L53-70L53-63L16-63L16-39L50-39L50-32L16-32L16-7L53-7L53 0L8 0Z"
|
|
32
|
+
});
|
|
33
|
+
const F = createAlphabet("F", {
|
|
34
|
+
viewBox: "8 -70 44.2 70",
|
|
35
|
+
d: "M8 0L8-70L52-70L52-63L16-63L16-38L47-38L47-31L16-31L16 0L8 0Z"
|
|
36
|
+
});
|
|
37
|
+
const G = createAlphabet("G", {
|
|
38
|
+
viewBox: "7 -70 52.2 70",
|
|
39
|
+
d: "M18 0L7-11L7-59L18-70L49-70L59-59L59-53L52-53L52-57L45-63L21-63L15-57L15-14L21-7L45-7L52-14L52-30L36-30L36-37L59-37L59-11L48 0L18 0Z"
|
|
40
|
+
});
|
|
41
|
+
const H = createAlphabet("H", {
|
|
42
|
+
viewBox: "8 -70 51.400000000000006 70",
|
|
43
|
+
d: "M8 0L8-70L16-70L16-38L52-38L52-70L59-70L59 0L52 0L52-32L16-32L16 0L8 0Z"
|
|
44
|
+
});
|
|
45
|
+
const I = createAlphabet("I", {
|
|
46
|
+
viewBox: "8.5 -70 7.600000000000001 70",
|
|
47
|
+
d: "M9 0L9-70L16-70L16 0L9 0Z"
|
|
48
|
+
});
|
|
49
|
+
const J = createAlphabet("J", {
|
|
50
|
+
viewBox: "3.5 -70 44.6 70",
|
|
51
|
+
d: "M15 0L4-11L4-21L11-21L11-14L18-7L35-7L41-12L41-70L48-70L48-10L38 0L15 0Z"
|
|
52
|
+
});
|
|
53
|
+
const K = createAlphabet("K", {
|
|
54
|
+
viewBox: "8 -70 51.7 70",
|
|
55
|
+
d: "M8 0L8-70L16-70L16-38L32-38L50-70L58-70L38-35L60 0L51 0L32-32L16-32L16 0L8 0Z"
|
|
56
|
+
});
|
|
57
|
+
const L = createAlphabet("L", {
|
|
58
|
+
viewBox: "8 -70 43.2 70",
|
|
59
|
+
d: "M8 0L8-70L16-70L16-7L51-7L51 0L8 0Z"
|
|
60
|
+
});
|
|
61
|
+
const M = createAlphabet("M", {
|
|
62
|
+
viewBox: "8 -70 61.7 70",
|
|
63
|
+
d: "M8 0L8-70L16-70L39-16L39-16L61-70L70-70L70 0L63 0L63-55L62-55L42-7L36-7L15-55L15-55L15 0L8 0Z"
|
|
64
|
+
});
|
|
65
|
+
const N = createAlphabet("N", {
|
|
66
|
+
viewBox: "8 -70 51.300000000000004 70",
|
|
67
|
+
d: "M8 0L8-70L15-70L52-12L52-12L52-70L59-70L59 0L52 0L15-58L15-58L15 0L8 0Z"
|
|
68
|
+
});
|
|
69
|
+
const O = createAlphabet("O", {
|
|
70
|
+
viewBox: "7 -70 53.6 70",
|
|
71
|
+
d: "M18 0L7-11L7-59L18-70L50-70L61-59L61-11L50 0L18 0ZM21-7L46-7L53-14L53-57L46-63L21-63L15-57L15-14L21-7Z"
|
|
72
|
+
});
|
|
73
|
+
const P = createAlphabet("P", {
|
|
74
|
+
viewBox: "8 -70 49.2 70",
|
|
75
|
+
d: "M8 0L8-70L48-70L57-61L57-38L48-29L16-29L16 0L8 0ZM16-36L45-36L50-41L50-59L45-63L16-63L16-36Z"
|
|
76
|
+
});
|
|
77
|
+
const Q = createAlphabet("Q", {
|
|
78
|
+
viewBox: "7 -70 56 80.8",
|
|
79
|
+
d: "M53-4L63 6L58 11L48 0L18 0L7-11L7-59L18-70L50-70L61-59L61-11L53-4ZM46-7L53-14L53-57L46-63L21-63L15-57L15-14L21-7L46-7Z"
|
|
80
|
+
});
|
|
81
|
+
const R = createAlphabet("R", {
|
|
82
|
+
viewBox: "8 -70 49.6 70",
|
|
83
|
+
d: "M49-31L58-21L58 0L50 0L50-19L40-29L16-29L16 0L8 0L8-70L48-70L57-61L57-39L49-31ZM16-63L16-36L45-36L50-41L50-59L45-63L16-63Z"
|
|
84
|
+
});
|
|
85
|
+
const S = createAlphabet("S", {
|
|
86
|
+
viewBox: "6.5 -70 48.800000000000004 70",
|
|
87
|
+
d: "M16 0L7-9L7-16L14-16L14-12L19-7L43-7L48-12L48-28L43-33L16-33L7-42L7-61L16-70L45-70L55-61L55-54L47-54L47-58L42-63L19-63L14-58L14-44L19-39L46-39L55-30L55-9L46 0L16 0Z"
|
|
88
|
+
});
|
|
89
|
+
const T = createAlphabet("T", {
|
|
90
|
+
viewBox: "3 -70 50 70",
|
|
91
|
+
d: "M24 0L24-63L3-63L3-70L53-70L53-63L32-63L32 0L24 0Z"
|
|
92
|
+
});
|
|
93
|
+
const U = createAlphabet("U", {
|
|
94
|
+
viewBox: "8 -70 51.6 70",
|
|
95
|
+
d: "M19 0L8-11L8-70L16-70L16-14L22-7L45-7L52-14L52-70L60-70L60-11L49 0L19 0Z"
|
|
96
|
+
});
|
|
97
|
+
const V = createAlphabet("V", {
|
|
98
|
+
viewBox: "2.5 -70 57.6 70",
|
|
99
|
+
d: "M27 0L3-70L10-70L31-9L31-9L52-70L60-70L35 0L27 0Z"
|
|
100
|
+
});
|
|
101
|
+
const W = createAlphabet("W", {
|
|
102
|
+
viewBox: "4 -70 78.30000000000001 70",
|
|
103
|
+
d: "M18 0L4-70L12-70L23-11L23-11L40-70L47-70L64-11L64-11L75-70L82-70L68 0L60 0L44-59L44-59L26 0L18 0Z"
|
|
104
|
+
});
|
|
105
|
+
const X = createAlphabet("X", {
|
|
106
|
+
viewBox: "2 -70 56.400000000000006 70",
|
|
107
|
+
d: "M2 0L26-36L3-70L12-70L30-42L49-70L57-70L35-36L58 0L50 0L30-30L11 0L2 0Z"
|
|
108
|
+
});
|
|
109
|
+
const Y = createAlphabet("Y", {
|
|
110
|
+
viewBox: "1.5 -70 56.2 70",
|
|
111
|
+
d: "M26 0L26-29L2-70L10-70L30-36L30-36L50-70L58-70L33-29L33 0L26 0Z"
|
|
112
|
+
});
|
|
113
|
+
const Z = createAlphabet("Z", {
|
|
114
|
+
viewBox: "5 -70 46.800000000000004 70",
|
|
115
|
+
d: "M5 0L5-8L44-63L44-64L6-64L6-70L52-70L52-63L13-7L13-7L52-7L52 0L5 0Z"
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
export { A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z };
|
|
119
|
+
//# sourceMappingURL=Alphabets.js.map
|