@nlabs/gothamjs
Version:
Platform
113 lines (112 loc) • 13.5 kB
JavaScript
import { useState } from "react";
import { useNavigate } from "react-router";
import { jsx, jsxs } from "react/jsx-runtime";
const navItems = [
{ label: "Home", path: "/" },
{ label: "About", path: "/about" },
{ label: "Contact", path: "/contact" }
];
const DefaultView = ({
children,
title = "GothamJS"
}) => {
const [mobileOpen, setMobileOpen] = useState(false);
const navigate = useNavigate();
const handleDrawerToggle = () => {
setMobileOpen(!mobileOpen);
};
const handleNavigation = (path) => {
navigate(path);
setMobileOpen(false);
};
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col min-h-screen", children: [
/* @__PURE__ */ jsxs("header", { className: "bg-indigo-600 text-white shadow-md", children: [
/* @__PURE__ */ jsx("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between h-16", children: [
/* @__PURE__ */ jsx("div", { className: "flex items-center sm:hidden", children: /* @__PURE__ */ jsxs(
"button",
{
type: "button",
className: "inline-flex items-center justify-center p-2 rounded-md text-white hover:bg-indigo-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",
"aria-controls": "mobile-menu",
"aria-expanded": mobileOpen,
onClick: handleDrawerToggle,
children: [
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Open main menu" }),
/* @__PURE__ */ jsx(
"svg",
{
className: `${mobileOpen ? "hidden" : "block"} h-6 w-6`,
xmlns: "http://www.w3.org/2000/svg",
fill: "none",
viewBox: "0 0 24 24",
stroke: "currentColor",
"aria-hidden": "true",
children: /* @__PURE__ */ jsx(
"path",
{
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 2,
d: "M4 6h16M4 12h16M4 18h16"
}
)
}
),
/* @__PURE__ */ jsx(
"svg",
{
className: `${mobileOpen ? "block" : "hidden"} h-6 w-6`,
xmlns: "http://www.w3.org/2000/svg",
fill: "none",
viewBox: "0 0 24 24",
stroke: "currentColor",
"aria-hidden": "true",
children: /* @__PURE__ */ jsx(
"path",
{
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 2,
d: "M6 18L18 6M6 6l12 12"
}
)
}
)
]
}
) }),
/* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center justify-center sm:items-stretch sm:justify-start", children: /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center", children: /* @__PURE__ */ jsx("h1", { className: "text-xl font-bold", children: title }) }) }),
/* @__PURE__ */ jsx("div", { className: "hidden sm:block sm:ml-6", children: /* @__PURE__ */ jsx("div", { className: "flex space-x-4", children: navItems.map(({ label, path }) => /* @__PURE__ */ jsx(
"button",
{
onClick: () => handleNavigation(path),
className: "text-white hover:bg-indigo-500 px-3 py-2 rounded-md text-sm font-medium",
children: label
},
path
)) }) })
] }) }),
/* @__PURE__ */ jsx(
"div",
{
className: `${mobileOpen ? "block" : "hidden"} sm:hidden`,
id: "mobile-menu",
children: /* @__PURE__ */ jsx("div", { className: "px-2 pt-2 pb-3 space-y-1", children: navItems.map(({ label, path }) => /* @__PURE__ */ jsx(
"button",
{
onClick: () => handleNavigation(path),
className: "text-white hover:bg-indigo-500 block px-3 py-2 rounded-md text-base font-medium w-full text-left",
children: label
},
path
)) })
}
)
] }),
/* @__PURE__ */ jsx("main", { className: "flex-grow p-4", children })
] });
};
export {
DefaultView
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpZXdzL0RlZmF1bHRWaWV3L0RlZmF1bHRWaWV3LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlTmF2aWdhdGV9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmNvbnN0IG5hdkl0ZW1zID0gW1xuICB7IGxhYmVsOiAnSG9tZScsIHBhdGg6ICcvJyB9LFxuICB7IGxhYmVsOiAnQWJvdXQnLCBwYXRoOiAnL2Fib3V0JyB9LFxuICB7IGxhYmVsOiAnQ29udGFjdCcsIHBhdGg6ICcvY29udGFjdCcgfVxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Vmlld1Byb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFZpZXc6IFJlYWN0LkZDPERlZmF1bHRWaWV3UHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHRpdGxlID0gJ0dvdGhhbUpTJ1xufSkgPT4ge1xuICBjb25zdCBbbW9iaWxlT3Blbiwgc2V0TW9iaWxlT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuICBjb25zdCBoYW5kbGVEcmF3ZXJUb2dnbGUgPSAoKSA9PiB7XG4gICAgc2V0TW9iaWxlT3BlbighbW9iaWxlT3Blbik7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTmF2aWdhdGlvbiA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICBuYXZpZ2F0ZShwYXRoKTtcbiAgICBzZXRNb2JpbGVPcGVuKGZhbHNlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBtaW4taC1zY3JlZW5cIj5cbiAgICAgIHsvKiBOYXZpZ2F0aW9uIEJhciAqL31cbiAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlIHNoYWRvdy1tZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBoLTE2XCI+XG4gICAgICAgICAgICB7LyogTW9iaWxlIG1lbnUgYnV0dG9uICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTIgcm91bmRlZC1tZCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWluZGlnby01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWluc2V0IGZvY3VzOnJpbmctd2hpdGVcIlxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtb2JpbGUtbWVudVwiXG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlT3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEcmF3ZXJUb2dnbGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBtYWluIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgey8qIEljb24gd2hlbiBtZW51IGlzIGNsb3NlZCAqL31cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake21vYmlsZU9wZW4gPyAnaGlkZGVuJyA6ICdibG9jayd9IGgtNiB3LTZgfVxuICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgey8qIEljb24gd2hlbiBtZW51IGlzIG9wZW4gKi99XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2Jsb2NrJyA6ICdoaWRkZW4nfSBoLTYgdy02YH1cbiAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogTG9nbyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNtOml0ZW1zLXN0cmV0Y2ggc206anVzdGlmeS1zdGFydFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIj57dGl0bGV9PC9oMT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIERlc2t0b3AgTmF2aWdhdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIHNtOmJsb2NrIHNtOm1sLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHNwYWNlLXgtNFwiPlxuICAgICAgICAgICAgICAgIHtuYXZJdGVtcy5tYXAoKHtsYWJlbCwgcGF0aH0pID0+IChcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtwYXRofVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVOYXZpZ2F0aW9uKHBhdGgpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlIGhvdmVyOmJnLWluZGlnby01MDAgcHgtMyBweS0yIHJvdW5kZWQtbWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogTW9iaWxlIE5hdmlnYXRpb24gKi99XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake21vYmlsZU9wZW4gPyAnYmxvY2snIDogJ2hpZGRlbid9IHNtOmhpZGRlbmB9XG4gICAgICAgICAgaWQ9XCJtb2JpbGUtbWVudVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTIgcHQtMiBwYi0zIHNwYWNlLXktMVwiPlxuICAgICAgICAgICAge25hdkl0ZW1zLm1hcCgoe2xhYmVsLCBwYXRofSkgPT4gKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAga2V5PXtwYXRofVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZU5hdmlnYXRpb24ocGF0aCl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIGJsb2NrIHB4LTMgcHktMiByb3VuZGVkLW1kIHRleHQtYmFzZSBmb250LW1lZGl1bSB3LWZ1bGwgdGV4dC1sZWZ0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtZ3JvdyBwLTRcIj5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9tYWluPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLFNBQVEsZ0JBQWU7QUFDdkIsU0FBUSxtQkFBa0I7QUFxQ1osU0FPRSxLQVBGO0FBbkNkLE1BQU0sV0FBVztBQUFBLEVBQ2YsRUFBRSxPQUFPLFFBQVEsTUFBTSxJQUFJO0FBQUEsRUFDM0IsRUFBRSxPQUFPLFNBQVMsTUFBTSxTQUFTO0FBQUEsRUFDakMsRUFBRSxPQUFPLFdBQVcsTUFBTSxXQUFXO0FBQ3ZDO0FBT08sTUFBTSxjQUEwQyxDQUFDO0FBQUEsRUFDdEQ7QUFBQSxFQUNBLFFBQVE7QUFDVixNQUFNO0FBQ0osUUFBTSxDQUFDLFlBQVksYUFBYSxJQUFJLFNBQVMsS0FBSztBQUNsRCxRQUFNLFdBQVcsWUFBWTtBQUU3QixRQUFNLHFCQUFxQixNQUFNO0FBQy9CLGtCQUFjLENBQUMsVUFBVTtBQUFBLEVBQzNCO0FBRUEsUUFBTSxtQkFBbUIsQ0FBQyxTQUFpQjtBQUN6QyxhQUFTLElBQUk7QUFDYixrQkFBYyxLQUFLO0FBQUEsRUFDckI7QUFFQSxTQUNFLHFCQUFDLFNBQUksV0FBVSw4QkFFYjtBQUFBLHlCQUFDLFlBQU8sV0FBVSxzQ0FDaEI7QUFBQSwwQkFBQyxTQUFJLFdBQVUsMEJBQ2IsK0JBQUMsU0FBSSxXQUFVLDBDQUViO0FBQUEsNEJBQUMsU0FBSSxXQUFVLCtCQUNiO0FBQUEsVUFBQztBQUFBO0FBQUEsWUFDQyxNQUFLO0FBQUEsWUFDTCxXQUFVO0FBQUEsWUFDVixpQkFBYztBQUFBLFlBQ2QsaUJBQWU7QUFBQSxZQUNmLFNBQVM7QUFBQSxZQUVUO0FBQUEsa0NBQUMsVUFBSyxXQUFVLFdBQVUsNEJBQWM7QUFBQSxjQUV4QztBQUFBLGdCQUFDO0FBQUE7QUFBQSxrQkFDQyxXQUFXLEdBQUcsYUFBYSxXQUFXLE9BQU87QUFBQSxrQkFDN0MsT0FBTTtBQUFBLGtCQUNOLE1BQUs7QUFBQSxrQkFDTCxTQUFRO0FBQUEsa0JBQ1IsUUFBTztBQUFBLGtCQUNQLGVBQVk7QUFBQSxrQkFFWjtBQUFBLG9CQUFDO0FBQUE7QUFBQSxzQkFDQyxlQUFjO0FBQUEsc0JBQ2QsZ0JBQWU7QUFBQSxzQkFDZixhQUFhO0FBQUEsc0JBQ2IsR0FBRTtBQUFBO0FBQUEsa0JBQ0o7QUFBQTtBQUFBLGNBQ0Y7QUFBQSxjQUVBO0FBQUEsZ0JBQUM7QUFBQTtBQUFBLGtCQUNDLFdBQVcsR0FBRyxhQUFhLFVBQVUsUUFBUTtBQUFBLGtCQUM3QyxPQUFNO0FBQUEsa0JBQ04sTUFBSztBQUFBLGtCQUNMLFNBQVE7QUFBQSxrQkFDUixRQUFPO0FBQUEsa0JBQ1AsZUFBWTtBQUFBLGtCQUVaO0FBQUEsb0JBQUM7QUFBQTtBQUFBLHNCQUNDLGVBQWM7QUFBQSxzQkFDZCxnQkFBZTtBQUFBLHNCQUNmLGFBQWE7QUFBQSxzQkFDYixHQUFFO0FBQUE7QUFBQSxrQkFDSjtBQUFBO0FBQUEsY0FDRjtBQUFBO0FBQUE7QUFBQSxRQUNGLEdBQ0Y7QUFBQSxRQUdBLG9CQUFDLFNBQUksV0FBVSw2RUFDYiw4QkFBQyxTQUFJLFdBQVUsbUNBQ2IsOEJBQUMsUUFBRyxXQUFVLHFCQUFxQixpQkFBTSxHQUMzQyxHQUNGO0FBQUEsUUFHQSxvQkFBQyxTQUFJLFdBQVUsMkJBQ2IsOEJBQUMsU0FBSSxXQUFVLGtCQUNaLG1CQUFTLElBQUksQ0FBQyxFQUFDLE9BQU8sS0FBSSxNQUN6QjtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBRUMsU0FBUyxNQUFNLGlCQUFpQixJQUFJO0FBQUEsWUFDcEMsV0FBVTtBQUFBLFlBRVQ7QUFBQTtBQUFBLFVBSkk7QUFBQSxRQUtQLENBQ0QsR0FDSCxHQUNGO0FBQUEsU0FDRixHQUNGO0FBQUEsTUFHQTtBQUFBLFFBQUM7QUFBQTtBQUFBLFVBQ0MsV0FBVyxHQUFHLGFBQWEsVUFBVSxRQUFRO0FBQUEsVUFDN0MsSUFBRztBQUFBLFVBRUgsOEJBQUMsU0FBSSxXQUFVLDRCQUNaLG1CQUFTLElBQUksQ0FBQyxFQUFDLE9BQU8sS0FBSSxNQUN6QjtBQUFBLFlBQUM7QUFBQTtBQUFBLGNBRUMsU0FBUyxNQUFNLGlCQUFpQixJQUFJO0FBQUEsY0FDcEMsV0FBVTtBQUFBLGNBRVQ7QUFBQTtBQUFBLFlBSkk7QUFBQSxVQUtQLENBQ0QsR0FDSDtBQUFBO0FBQUEsTUFDRjtBQUFBLE9BQ0Y7QUFBQSxJQUdBLG9CQUFDLFVBQUssV0FBVSxpQkFDYixVQUNIO0FBQUEsS0FDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=