nav.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import type { ComponentType, HTMLAttributes } from "react";
  2. import { ActivityIcon } from "@/components/icons/activity";
  3. import { BookTextIcon } from "@/components/icons/book-text";
  4. import { EarthIcon } from "@/components/icons/earth";
  5. import { LayersIcon } from "@/components/icons/layers";
  6. import { LayoutGridIcon } from "@/components/icons/layout-grid";
  7. import { ShieldCheckIcon } from "@/components/icons/shield-check";
  8. import { WalletIcon } from "@/components/icons/wallet";
  9. import { WaypointsIcon } from "@/components/icons/waypoints";
  10. export type NavIcon = ComponentType<
  11. HTMLAttributes<HTMLDivElement> & { size?: number }
  12. >;
  13. export interface NavItem {
  14. label: string;
  15. href: string;
  16. icon: NavIcon;
  17. }
  18. export interface NavGroup {
  19. label: string;
  20. items: NavItem[];
  21. }
  22. /** Portal zone navigation — all routes live under /portal */
  23. export const NAV_GROUPS: NavGroup[] = [
  24. {
  25. label: "Explore",
  26. items: [
  27. { label: "Overview", href: "/portal", icon: ActivityIcon },
  28. { label: "Explorer", href: "/portal/explorer", icon: EarthIcon },
  29. { label: "Hybrid stack", href: "/portal/hybrid", icon: LayersIcon },
  30. ],
  31. },
  32. {
  33. label: "Learn",
  34. items: [
  35. {
  36. label: "How It Works",
  37. href: "/portal/how-it-works",
  38. icon: WaypointsIcon,
  39. },
  40. {
  41. label: "Architecture",
  42. href: "/portal/architecture",
  43. icon: LayersIcon,
  44. },
  45. { label: "Docs", href: "/portal/docs", icon: BookTextIcon },
  46. ],
  47. },
  48. {
  49. label: "Account",
  50. items: [
  51. {
  52. label: "Sign in",
  53. href: "/portal/sign-in",
  54. icon: WalletIcon,
  55. },
  56. {
  57. label: "Connect Wallet",
  58. href: "/portal/connect-wallet",
  59. icon: WalletIcon,
  60. },
  61. {
  62. label: "mavi wallet",
  63. href: "/portal/mavi",
  64. icon: WalletIcon,
  65. },
  66. { label: "Dashboard", href: "/portal/dashboard", icon: LayoutGridIcon },
  67. {
  68. label: "Machine auth",
  69. href: "/portal/machine-auth",
  70. icon: ShieldCheckIcon,
  71. },
  72. { label: "Services", href: "/portal/services", icon: LayersIcon },
  73. ],
  74. },
  75. ];