UNPKG

@nlabs/gothamjs

Version:
132 lines (131 loc) 16.1 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; /** * Copyright (c) 2018-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { useState } from 'react'; import { useNavigate } from 'react-router'; const navItems = [ { label: 'Home', path: '/' }, { label: 'About', path: '/about' }, { label: 'Contact', path: '/contact' } ]; export 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: children }) ] }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9EZWZhdWx0Vmlldy9EZWZhdWx0Vmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlTmF2aWdhdGV9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmNvbnN0IG5hdkl0ZW1zID0gW1xuICB7IGxhYmVsOiAnSG9tZScsIHBhdGg6ICcvJyB9LFxuICB7IGxhYmVsOiAnQWJvdXQnLCBwYXRoOiAnL2Fib3V0JyB9LFxuICB7IGxhYmVsOiAnQ29udGFjdCcsIHBhdGg6ICcvY29udGFjdCcgfVxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Vmlld1Byb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFZpZXc6IFJlYWN0LkZDPERlZmF1bHRWaWV3UHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHRpdGxlID0gJ0dvdGhhbUpTJ1xufSkgPT4ge1xuICBjb25zdCBbbW9iaWxlT3Blbiwgc2V0TW9iaWxlT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuICBjb25zdCBoYW5kbGVEcmF3ZXJUb2dnbGUgPSAoKSA9PiB7XG4gICAgc2V0TW9iaWxlT3BlbighbW9iaWxlT3Blbik7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTmF2aWdhdGlvbiA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICBuYXZpZ2F0ZShwYXRoKTtcbiAgICBzZXRNb2JpbGVPcGVuKGZhbHNlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBtaW4taC1zY3JlZW5cIj5cbiAgICAgIHsvKiBOYXZpZ2F0aW9uIEJhciAqL31cbiAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlIHNoYWRvdy1tZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBoLTE2XCI+XG4gICAgICAgICAgICB7LyogTW9iaWxlIG1lbnUgYnV0dG9uICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTIgcm91bmRlZC1tZCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWluZGlnby01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWluc2V0IGZvY3VzOnJpbmctd2hpdGVcIlxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtb2JpbGUtbWVudVwiXG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlT3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEcmF3ZXJUb2dnbGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBtYWluIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgey8qIEljb24gd2hlbiBtZW51IGlzIGNsb3NlZCAqL31cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake21vYmlsZU9wZW4gPyAnaGlkZGVuJyA6ICdibG9jayd9IGgtNiB3LTZgfVxuICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgey8qIEljb24gd2hlbiBtZW51IGlzIG9wZW4gKi99XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2Jsb2NrJyA6ICdoaWRkZW4nfSBoLTYgdy02YH1cbiAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogTG9nbyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNtOml0ZW1zLXN0cmV0Y2ggc206anVzdGlmeS1zdGFydFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIj57dGl0bGV9PC9oMT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIERlc2t0b3AgTmF2aWdhdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIHNtOmJsb2NrIHNtOm1sLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHNwYWNlLXgtNFwiPlxuICAgICAgICAgICAgICAgIHtuYXZJdGVtcy5tYXAoKHtsYWJlbCwgcGF0aH0pID0+IChcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtwYXRofVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVOYXZpZ2F0aW9uKHBhdGgpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlIGhvdmVyOmJnLWluZGlnby01MDAgcHgtMyBweS0yIHJvdW5kZWQtbWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogTW9iaWxlIE5hdmlnYXRpb24gKi99XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake21vYmlsZU9wZW4gPyAnYmxvY2snIDogJ2hpZGRlbid9IHNtOmhpZGRlbmB9XG4gICAgICAgICAgaWQ9XCJtb2JpbGUtbWVudVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTIgcHQtMiBwYi0zIHNwYWNlLXktMVwiPlxuICAgICAgICAgICAge25hdkl0ZW1zLm1hcCgoe2xhYmVsLCBwYXRofSkgPT4gKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAga2V5PXtwYXRofVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZU5hdmlnYXRpb24ocGF0aCl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIGJsb2NrIHB4LTMgcHktMiByb3VuZGVkLW1kIHRleHQtYmFzZSBmb250LW1lZGl1bSB3LWZ1bGwgdGV4dC1sZWZ0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtZ3JvdyBwLTRcIj5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9tYWluPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZU5hdmlnYXRlIiwibmF2SXRlbXMiLCJsYWJlbCIsInBhdGgiLCJEZWZhdWx0VmlldyIsImNoaWxkcmVuIiwidGl0bGUiLCJtb2JpbGVPcGVuIiwic2V0TW9iaWxlT3BlbiIsIm5hdmlnYXRlIiwiaGFuZGxlRHJhd2VyVG9nZ2xlIiwiaGFuZGxlTmF2aWdhdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsImhlYWRlciIsImJ1dHRvbiIsInR5cGUiLCJhcmlhLWNvbnRyb2xzIiwiYXJpYS1leHBhbmRlZCIsIm9uQ2xpY2siLCJzcGFuIiwic3ZnIiwieG1sbnMiLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsImFyaWEtaGlkZGVuIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwiaDEiLCJtYXAiLCJpZCIsIm1haW4iXSwibWFwcGluZ3MiOiI7QUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxRQUFRLFFBQU8sUUFBUTtBQUMvQixTQUFRQyxXQUFXLFFBQU8sZUFBZTtBQUV6QyxNQUFNQyxXQUFXO0lBQ2Y7UUFBRUMsT0FBTztRQUFRQyxNQUFNO0lBQUk7SUFDM0I7UUFBRUQsT0FBTztRQUFTQyxNQUFNO0lBQVM7SUFDakM7UUFBRUQsT0FBTztRQUFXQyxNQUFNO0lBQVc7Q0FDdEM7QUFPRCxPQUFPLE1BQU1DLGNBQTBDLENBQUMsRUFDdERDLFFBQVEsRUFDUkMsUUFBUSxVQUFVLEVBQ25CO0lBQ0MsTUFBTSxDQUFDQyxZQUFZQyxjQUFjLEdBQUdULFNBQVM7SUFDN0MsTUFBTVUsV0FBV1Q7SUFFakIsTUFBTVUscUJBQXFCO1FBQ3pCRixjQUFjLENBQUNEO0lBQ2pCO0lBRUEsTUFBTUksbUJBQW1CLENBQUNSO1FBQ3hCTSxTQUFTTjtRQUNUSyxjQUFjO0lBQ2hCO0lBRUEscUJBQ0UsTUFBQ0k7UUFBSUMsV0FBVTs7MEJBRWIsTUFBQ0M7Z0JBQU9ELFdBQVU7O2tDQUNoQixLQUFDRDt3QkFBSUMsV0FBVTtrQ0FDYixjQUFBLE1BQUNEOzRCQUFJQyxXQUFVOzs4Q0FFYixLQUFDRDtvQ0FBSUMsV0FBVTs4Q0FDYixjQUFBLE1BQUNFO3dDQUNDQyxNQUFLO3dDQUNMSCxXQUFVO3dDQUNWSSxpQkFBYzt3Q0FDZEMsaUJBQWVYO3dDQUNmWSxTQUFTVDs7MERBRVQsS0FBQ1U7Z0RBQUtQLFdBQVU7MERBQVU7OzBEQUUxQixLQUFDUTtnREFDQ1IsV0FBVyxHQUFHTixhQUFhLFdBQVcsUUFBUSxRQUFRLENBQUM7Z0RBQ3ZEZSxPQUFNO2dEQUNOQyxNQUFLO2dEQUNMQyxTQUFRO2dEQUNSQyxRQUFPO2dEQUNQQyxlQUFZOzBEQUVaLGNBQUEsS0FBQ3ZCO29EQUNDd0IsZUFBYztvREFDZEMsZ0JBQWU7b0RBQ2ZDLGFBQWE7b0RBQ2JDLEdBQUU7OzswREFJTixLQUFDVDtnREFDQ1IsV0FBVyxHQUFHTixhQUFhLFVBQVUsU0FBUyxRQUFRLENBQUM7Z0RBQ3ZEZSxPQUFNO2dEQUNOQyxNQUFLO2dEQUNMQyxTQUFRO2dEQUNSQyxRQUFPO2dEQUNQQyxlQUFZOzBEQUVaLGNBQUEsS0FBQ3ZCO29EQUNDd0IsZUFBYztvREFDZEMsZ0JBQWU7b0RBQ2ZDLGFBQWE7b0RBQ2JDLEdBQUU7Ozs7Ozs4Q0FPVixLQUFDbEI7b0NBQUlDLFdBQVU7OENBQ2IsY0FBQSxLQUFDRDt3Q0FBSUMsV0FBVTtrREFDYixjQUFBLEtBQUNrQjs0Q0FBR2xCLFdBQVU7c0RBQXFCUDs7Ozs4Q0FLdkMsS0FBQ007b0NBQUlDLFdBQVU7OENBQ2IsY0FBQSxLQUFDRDt3Q0FBSUMsV0FBVTtrREFDWlosU0FBUytCLEdBQUcsQ0FBQyxDQUFDLEVBQUM5QixLQUFLLEVBQUVDLElBQUksRUFBQyxpQkFDMUIsS0FBQ1k7Z0RBRUNJLFNBQVMsSUFBTVIsaUJBQWlCUjtnREFDaENVLFdBQVU7MERBRVRYOytDQUpJQzs7Ozs7O2tDQWFqQixLQUFDUzt3QkFDQ0MsV0FBVyxHQUFHTixhQUFhLFVBQVUsU0FBUyxVQUFVLENBQUM7d0JBQ3pEMEIsSUFBRztrQ0FFSCxjQUFBLEtBQUNyQjs0QkFBSUMsV0FBVTtzQ0FDWlosU0FBUytCLEdBQUcsQ0FBQyxDQUFDLEVBQUM5QixLQUFLLEVBQUVDLElBQUksRUFBQyxpQkFDMUIsS0FBQ1k7b0NBRUNJLFNBQVMsSUFBTVIsaUJBQWlCUjtvQ0FDaENVLFdBQVU7OENBRVRYO21DQUpJQzs7Ozs7MEJBWWYsS0FBQytCO2dCQUFLckIsV0FBVTswQkFDYlI7Ozs7QUFJVCxFQUFFIn0=