UNPKG

@nlabs/gothamjs

Version:
113 lines (112 loc) 13.5 kB
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 HomeView = ({ 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 { HomeView }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpZXdzL0hvbWVWaWV3L0hvbWVWaWV3LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZU5hdmlnYXRlfSBmcm9tICdyZWFjdC1yb3V0ZXInO1xuXG5jb25zdCBuYXZJdGVtcyA9IFtcbiAgeyBsYWJlbDogJ0hvbWUnLCBwYXRoOiAnLycgfSxcbiAgeyBsYWJlbDogJ0Fib3V0JywgcGF0aDogJy9hYm91dCcgfSxcbiAgeyBsYWJlbDogJ0NvbnRhY3QnLCBwYXRoOiAnL2NvbnRhY3QnIH1cbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9tZVZpZXdQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEhvbWVWaWV3OiBSZWFjdC5GQzxIb21lVmlld1Byb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICB0aXRsZSA9ICdHb3RoYW1KUydcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU9wZW4sIHNldE1vYmlsZU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgaGFuZGxlRHJhd2VyVG9nZ2xlID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU9wZW4oIW1vYmlsZU9wZW4pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU5hdmlnYXRpb24gPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgbmF2aWdhdGUocGF0aCk7XG4gICAgc2V0TW9iaWxlT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWluLWgtc2NyZWVuXCI+XG4gICAgICB7LyogTmF2aWdhdGlvbiBCYXIgKi99XG4gICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cImJnLWluZGlnby02MDAgdGV4dC13aGl0ZSBzaGFkb3ctbWRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgey8qIE1vYmlsZSBtZW51IGJ1dHRvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC0yIHJvdW5kZWQtbWQgdGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLXdoaXRlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibW9iaWxlLW1lbnVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU9wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRHJhd2VyVG9nZ2xlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPk9wZW4gbWFpbiBtZW51PC9zcGFuPlxuICAgICAgICAgICAgICAgIHsvKiBJY29uIHdoZW4gbWVudSBpcyBjbG9zZWQgKi99XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2hpZGRlbicgOiAnYmxvY2snfSBoLTYgdy02YH1cbiAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGgxNlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIHsvKiBJY29uIHdoZW4gbWVudSBpcyBvcGVuICovfVxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7bW9iaWxlT3BlbiA/ICdibG9jaycgOiAnaGlkZGVuJ30gaC02IHctNmB9XG4gICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIExvZ28gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzbTppdGVtcy1zdHJldGNoIHNtOmp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LXNocmluay0wIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+e3RpdGxlfTwvaDE+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBEZXNrdG9wIE5hdmlnYXRpb24gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBzbTpibG9jayBzbTptbC02XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTRcIj5cbiAgICAgICAgICAgICAgICB7bmF2SXRlbXMubWFwKCh7bGFiZWwsIHBhdGh9KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17cGF0aH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTmF2aWdhdGlvbihwYXRoKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIHB4LTMgcHktMiByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIE1vYmlsZSBOYXZpZ2F0aW9uICovfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2Jsb2NrJyA6ICdoaWRkZW4nfSBzbTpoaWRkZW5gfVxuICAgICAgICAgIGlkPVwibW9iaWxlLW1lbnVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC0yIHB0LTIgcGItMyBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgIHtuYXZJdGVtcy5tYXAoKHtsYWJlbCwgcGF0aH0pID0+IChcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGtleT17cGF0aH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVOYXZpZ2F0aW9uKHBhdGgpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgaG92ZXI6YmctaW5kaWdvLTUwMCBibG9jayBweC0zIHB5LTIgcm91bmRlZC1tZCB0ZXh0LWJhc2UgZm9udC1tZWRpdW0gdy1mdWxsIHRleHQtbGVmdFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4LWdyb3cgcC00XCI+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvbWFpbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFlLGdCQUFlO0FBQzlCLFNBQVEsbUJBQWtCO0FBcUNaLFNBT0UsS0FQRjtBQW5DZCxNQUFNLFdBQVc7QUFBQSxFQUNmLEVBQUUsT0FBTyxRQUFRLE1BQU0sSUFBSTtBQUFBLEVBQzNCLEVBQUUsT0FBTyxTQUFTLE1BQU0sU0FBUztBQUFBLEVBQ2pDLEVBQUUsT0FBTyxXQUFXLE1BQU0sV0FBVztBQUN2QztBQU9PLE1BQU0sV0FBb0MsQ0FBQztBQUFBLEVBQ2hEO0FBQUEsRUFDQSxRQUFRO0FBQ1YsTUFBTTtBQUNKLFFBQU0sQ0FBQyxZQUFZLGFBQWEsSUFBSSxTQUFTLEtBQUs7QUFDbEQsUUFBTSxXQUFXLFlBQVk7QUFFN0IsUUFBTSxxQkFBcUIsTUFBTTtBQUMvQixrQkFBYyxDQUFDLFVBQVU7QUFBQSxFQUMzQjtBQUVBLFFBQU0sbUJBQW1CLENBQUMsU0FBaUI7QUFDekMsYUFBUyxJQUFJO0FBQ2Isa0JBQWMsS0FBSztBQUFBLEVBQ3JCO0FBRUEsU0FDRSxxQkFBQyxTQUFJLFdBQVUsOEJBRWI7QUFBQSx5QkFBQyxZQUFPLFdBQVUsc0NBQ2hCO0FBQUEsMEJBQUMsU0FBSSxXQUFVLDBCQUNiLCtCQUFDLFNBQUksV0FBVSwwQ0FFYjtBQUFBLDRCQUFDLFNBQUksV0FBVSwrQkFDYjtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsTUFBSztBQUFBLFlBQ0wsV0FBVTtBQUFBLFlBQ1YsaUJBQWM7QUFBQSxZQUNkLGlCQUFlO0FBQUEsWUFDZixTQUFTO0FBQUEsWUFFVDtBQUFBLGtDQUFDLFVBQUssV0FBVSxXQUFVLDRCQUFjO0FBQUEsY0FFeEM7QUFBQSxnQkFBQztBQUFBO0FBQUEsa0JBQ0MsV0FBVyxHQUFHLGFBQWEsV0FBVyxPQUFPO0FBQUEsa0JBQzdDLE9BQU07QUFBQSxrQkFDTixNQUFLO0FBQUEsa0JBQ0wsU0FBUTtBQUFBLGtCQUNSLFFBQU87QUFBQSxrQkFDUCxlQUFZO0FBQUEsa0JBRVo7QUFBQSxvQkFBQztBQUFBO0FBQUEsc0JBQ0MsZUFBYztBQUFBLHNCQUNkLGdCQUFlO0FBQUEsc0JBQ2YsYUFBYTtBQUFBLHNCQUNiLEdBQUU7QUFBQTtBQUFBLGtCQUNKO0FBQUE7QUFBQSxjQUNGO0FBQUEsY0FFQTtBQUFBLGdCQUFDO0FBQUE7QUFBQSxrQkFDQyxXQUFXLEdBQUcsYUFBYSxVQUFVLFFBQVE7QUFBQSxrQkFDN0MsT0FBTTtBQUFBLGtCQUNOLE1BQUs7QUFBQSxrQkFDTCxTQUFRO0FBQUEsa0JBQ1IsUUFBTztBQUFBLGtCQUNQLGVBQVk7QUFBQSxrQkFFWjtBQUFBLG9CQUFDO0FBQUE7QUFBQSxzQkFDQyxlQUFjO0FBQUEsc0JBQ2QsZ0JBQWU7QUFBQSxzQkFDZixhQUFhO0FBQUEsc0JBQ2IsR0FBRTtBQUFBO0FBQUEsa0JBQ0o7QUFBQTtBQUFBLGNBQ0Y7QUFBQTtBQUFBO0FBQUEsUUFDRixHQUNGO0FBQUEsUUFHQSxvQkFBQyxTQUFJLFdBQVUsNkVBQ2IsOEJBQUMsU0FBSSxXQUFVLG1DQUNiLDhCQUFDLFFBQUcsV0FBVSxxQkFBcUIsaUJBQU0sR0FDM0MsR0FDRjtBQUFBLFFBR0Esb0JBQUMsU0FBSSxXQUFVLDJCQUNiLDhCQUFDLFNBQUksV0FBVSxrQkFDWixtQkFBUyxJQUFJLENBQUMsRUFBQyxPQUFPLEtBQUksTUFDekI7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUVDLFNBQVMsTUFBTSxpQkFBaUIsSUFBSTtBQUFBLFlBQ3BDLFdBQVU7QUFBQSxZQUVUO0FBQUE7QUFBQSxVQUpJO0FBQUEsUUFLUCxDQUNELEdBQ0gsR0FDRjtBQUFBLFNBQ0YsR0FDRjtBQUFBLE1BR0E7QUFBQSxRQUFDO0FBQUE7QUFBQSxVQUNDLFdBQVcsR0FBRyxhQUFhLFVBQVUsUUFBUTtBQUFBLFVBQzdDLElBQUc7QUFBQSxVQUVILDhCQUFDLFNBQUksV0FBVSw0QkFDWixtQkFBUyxJQUFJLENBQUMsRUFBQyxPQUFPLEtBQUksTUFDekI7QUFBQSxZQUFDO0FBQUE7QUFBQSxjQUVDLFNBQVMsTUFBTSxpQkFBaUIsSUFBSTtBQUFBLGNBQ3BDLFdBQVU7QUFBQSxjQUVUO0FBQUE7QUFBQSxZQUpJO0FBQUEsVUFLUCxDQUNELEdBQ0g7QUFBQTtBQUFBLE1BQ0Y7QUFBQSxPQUNGO0FBQUEsSUFHQSxvQkFBQyxVQUFLLFdBQVUsaUJBQ2IsVUFDSDtBQUFBLEtBQ0Y7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K